ATM (Asynchronous Transfer Mode) high-speed packet switched networks have been proposed as a technology capable of integrating present digital services with new multimedia services, e.g., video on demand, live television from many sources, CD-quality music, LAN interconnection, and high-speed data transport for science and industry. To implement these different services, ATM networks are designed to handle a variety of traffic characteristics, e.g., constant rate, variable rate, and bursty, required for various real time, such as video conferencing, and non-real time, such as E-mail and web browsing, applications. The basic principles of ATM packet-switched networks are well known to those skilled in the art and are discussed in numerous published references (see, for example, Andrew S. Tanenbaum, Computer Networks, Prentice Hall, 1996, 3rd ed.).
FIG. 1 illustrates an ATM network 6 with a simple topology shown herein for purposes of explanation of the operations of an ATM network relevant to the present invention. Users, typically running applications on host computers, are connected to the network, in this figure two users are labeled as A and B. The host computers generally execute applications for the users whereas the ATM switches 1-5 of the ATM network 6 are solely concerned with the communication of data among the hosts along paths in the network. A network manager 22 may monitor network status and perform other network tasks.
By way of example, in FIG. 1, one possible path of data flow would be from User A across the UNI (user-to-network interface) to switch 1, and from switch 1 to switch 2 to switch 4 across the NNI (network-to-network interface) interfaces and from switch 4 to User B across the UNI interface. In this example, User A is assumed to be sending data to User B. Hence, User A is considered the source and User B the destination. The roles would reverse in the case where User B sends data to User A. Thus, User A is sending data which flows through the network and reaches User B. A path between User A and User B in the network is referred to herein alternately as a connection, circuit, or virtual path.
In an ATM network, data is transmitted between the switches of the network in small, fixed size 53 byte long ATM cells having 5 bytes for a header and 48 bytes for the data payload. The header of each cell contains a virtual address used for routing the cells over the network. Each ATM cell contains a two-part address in the cell header: a Virtual Path Identifier (VPI) and a Virtual Circuit Identifier (VCI). This two-part address uniquely identifies an ATM virtual connection on a physical interface (a bundle of circuits being contained within a path).
Once a connection is established, data can be exchanged between User A and User B. Typically, the flow of data proceeds as follows. User A opens an application on the computer of User A which sends data to User B. Network software at User A's side will receive the data from the application of user A, and arrange the data into packets. Each packet is arranged as one or more 53 byte ATM cells carrying the data payload preceded by a packet header cell containing information related to the application. The packets are sent over the ATM network cell by cell from User A to User B. The cells are then reassembled into packets by software at User B's end and presented to User B as an application packet.
In an ATM network, before data is exchanged between users, a connection must be established. That is, a call is required by user A to user B, similar to a telephone call, to set up a connection between the two users. Once the connection path is established, all data cells are transferred over the same connection path. This guarantees that cells will be delivered in order. Although ATM establishes a circuit between hosts, it establishes this circuit internally using packet switching technology. When a virtual circuit is established between hosts, what really happens is that table entries storing routing information are made in each switch along the path between the hosts.
Referring to FIG. 1, the following is an example of what happens when a user A connects to user B. First, user A sends a call request to user B. The call request arrives at switch 1. Call processing software located at switch 1 uses signaling procedures combined with routing services to locate user B and establish a virtual connection over which user A and user B exchange data. During the call setup process, messages are being exchanged between the switches of the network and control functions run on the switches until a connection is established allowing transfer of data between user A and user B.
Establishing a connection is a control function of the network. The functions of the control plane of the network are typically concerned with the actual task of creating and maintaining the network path topology. This includes functions for establishing, rerouting, and terminating connections. The functions of the management plane administrates network resources. Examples of management plane function include the collection of traffic statistics, monitoring, and detecting switch failures. The management plane and control plane are distinct from the data plane, which is concerned solely with the routing and switching of data cells within the network.
In conventional network systems, many of the control and management tasks are commonly performed on the switches themselves. FIG. 2 illustrates one possible configuration of a conventional switch 1-5. The switching fabric 38 accepts ATM cells with data arriving at input lines 33 from the network and puts the cells onto the appropriate output lines 35 to the network. As is well-known to one of ordinary skill in the art, a switching control unit 34 of an ATM switch will route a cell on an incoming line to an outgoing line based on the line number and an address header appearing in the incoming cell. The switching control unit 34 will then replace the header of the cell with a new header stored in the same index location before sending the cell to another switch. Thus, the main function of the switching components 34 and 38 which constitute the switching unit 14 is to carry out the data plane function of mapping ATM cells from input lines to output lines. The CPU 30 communicates instructions to the switching unit 34 on path 12a. The switching unit 34 may communicate state information to the CPU 30 on data path 12b.
As shown in FIG. 2, switch 1-5 includes a CPU 30 and memory 32 containing control and management software which implements the functionality of the management and control plane, including network routing, network signaling, for example to establish a connection, connection admission control, for example to determine whether to accept a call at the requested quality of service, and other procedures and programs for control and management of the switch. A network manager 22 may be able to transmit information 13a and receive information 13b from switch 1-5 to handle various management functions, such as monitoring. An example of an important control function, would be signaling, i.e. the establishment of a connection between two host machines. In the signaling process, a switch 1-5 would receive a request to establish a connection with network 6. The request may have been generated from a user or another switch. To process this request, CPU 30 will run the signaling routines stored in memory 32. If a connection is established, the CPU 30 will provide instructions 12a to the switching control unit 34 to establish the connection in switching fabric 38. Since each of the switches may be from different vendors, instructions 12a may be different from vendor to vendor. This requires a switch have a CPU and embedded control and management software to perform control and management tasks. This creates several significant problems for present day network systems.
First, because every switch in the network requires complex network and management software, a switch must have a CPU, memory, and software which drives up the complexity and cost of each switch.
A further problem is that switches in an ATM network may be designed by different vendors. Thus, upgrading a network system may potentially require an engineer on site to upgrade software from different vendors onto the various switches. This places a significant burden on the system administrator and creates significant additional cost for any proposed system enhancement or upgrade.
A further problem is the lack of interoperability of switches within the network system. Since different switches may have different management and control software, a switch upgraded to include a new feature may not operate properly with other switches in the network produced by other vendors. Thus, having different management and control software on each switch actually contributes to a decline in quality and reliability of the entire system.
Another implication of having management and control software on a switch, is that the sophistication of the software is limited to the resource limitations of a switch. The speed, complexity, and memory size of a switch must be kept low for economic reasons. Thus, for example, a sophisticated congestion algorithm which would improve network performance may not be implemented because it would require significant memory or CPU cycles.